using System.Diagnostics.CodeAnalysis;
using System.Linq.Expressions;
using ZeroBlog.Core.Domains.Blog;

namespace ZeroBlog.Core.DomainServices.Commons;

public interface ICommonDomainService
{
    Task AddAsync(Common domain);
    Task DeleteAsync(IList<long> ids);
    Task UpdateAsync(Common domain);
    Task<Common> GetAsync([NotNull] Expression<Func<Common, bool>> predicate);
    Task<(IList<Common>, int)> Query(string? keyword, int pageNumber, int pageSize);
}